package com.authine.cloudpivot.ext.dto.query;

import com.authine.cloudpivot.ext.Enum.*;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;

import java.util.Collection;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Builder
public class InvoiceQuery extends Page {

    private String id;
    @Schema(description = "当前红票对应的蓝票ID")
    private String offset_id;
    @Schema(description = "结算单对应的交易类型，Sale=销售，Purchase=采购",required = true)
    private String direction;

    private List<String> business_type;
    private List<String> statuss;

    @Schema(description = "票面发票号码")
    private String number;
    @Schema(description = "购买方组织ID")
    private List<String> purchase_organization_id;
    @Schema(description = "收票组织，采购方组织名称")
    private String purchase_organization_name;
    @Schema(description = "票面购买方名称,发票抬头")
    private String purchase_name;
    @Schema(description = "发票类型")
    private Collection<InvoiceType> types;
    @Schema(description = "票面开票日期")
    private List<Date> date;

    @Schema(description = "蓝票可红冲金额是否大于0")
    private Boolean canOffset = false;

    @Schema(description = "销售方组织ID")
    private List<String> sale_organization_id;
    @Schema(description = "开票组织，销售方组织名称")
    private String sale_organization_name;

    @Schema(description = "交易对应的订单类型。")
    private String tradeOrderType;

    @Schema(description = "结算单ID，核销获取发票时必填")
    private String settle_id;
    @Schema(description = "收款时间")
    private List<Date> confirm_time;

    @Schema(description = "结算申请状态，1=可申请，2=已申请")
    private Integer is_settle;




}
